home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 25 / AACD 25.iso / AACD / Programming / yaec / modules / exec.e < prev    next >
Encoding:
Text File  |  2001-08-12  |  14.1 KB  |  153 lines

  1. OPT MODULE
  2. OPT EXPORT
  3. -> Module created with E:bin/fd2module from YAECv18 package.
  4. OPT NDDC
  5. -> ------ misc ---------------------------------------------------------
  6. #macro Supervisor(userFunction) IS ASM ' movem.l d2-d7/a2-a5,-(a7)' BUT Stores(execbase,userFunction) BUT Loads(A6,A5) BUT ASM ' jsr -30(a6)' BUT ASM ' movem.l (a7)+, d2-d7/a2-a5'
  7. -> ------ special patchable hooks to internal exec activity ------------
  8. -> ------ module creation ----------------------------------------------
  9. #macro InitCode(startClass,version) IS Stores(execbase,startClass,version) BUT Loads(A6,D0,D1) BUT ASM ' jsr -72(a6)'
  10. #macro InitStruct(initTable,memory,size) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,initTable,memory,size) BUT Loads(A6,A1,A2,D0) BUT ASM ' jsr -78(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  11. #macro MakeLibrary(funcInit,structInit,libInit,dataSize,segList) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,funcInit,structInit,libInit,dataSize,segList) BUT Loads(A6,A0,A1,A2,D0,D1) BUT ASM ' jsr -84(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  12. #macro MakeFunctions(target,functionArray,funcDispBase) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,target,functionArray,funcDispBase) BUT Loads(A6,A0,A1,A2) BUT ASM ' jsr -90(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  13. #macro FindResident(name) IS (A1:=name) BUT (A6:=execbase) BUT ASM ' jsr -96(a6)'
  14. #macro InitResident(resident,segList) IS Stores(execbase,resident,segList) BUT Loads(A6,A1,D1) BUT ASM ' jsr -102(a6)'
  15. -> ------ diagnostics --------------------------------------------------
  16. #macro Alert(alertNum) IS ASM ' movem.l d2-d7/a2-a5,-(a7)' BUT Stores(execbase,alertNum) BUT Loads(A6,D7) BUT ASM ' jsr -108(a6)' BUT ASM ' movem.l (a7)+, d2-d7/a2-a5'
  17. #macro Debug(flags) IS (D0:=flags) BUT (A6:=execbase) BUT ASM ' jsr -114(a6)'
  18. -> ------ interrupts ---------------------------------------------------
  19. #macro Disable() IS (A6:=execbase) BUT ASM ' jsr -120(a6)'
  20. #macro Enable() IS (A6:=execbase) BUT ASM ' jsr -126(a6)'
  21. #macro Forbid() IS (A6:=execbase) BUT ASM ' jsr -132(a6)'
  22. #macro Permit() IS (A6:=execbase) BUT ASM ' jsr -138(a6)'
  23. #macro SetSR(newSR,mask) IS Stores(execbase,newSR,mask) BUT Loads(A6,D0,D1) BUT ASM ' jsr -144(a6)'
  24. #macro SuperState() IS (A6:=execbase) BUT ASM ' jsr -150(a6)'
  25. #macro UserState(sysStack) IS (D0:=sysStack) BUT (A6:=execbase) BUT ASM ' jsr -156(a6)'
  26. #macro SetIntVector(intNumber,interrupt) IS Stores(execbase,intNumber,interrupt) BUT Loads(A6,D0,A1) BUT ASM ' jsr -162(a6)'
  27. #macro AddIntServer(intNumber,interrupt) IS Stores(execbase,intNumber,interrupt) BUT Loads(A6,D0,A1) BUT ASM ' jsr -168(a6)'
  28. #macro RemIntServer(intNumber,interrupt) IS Stores(execbase,intNumber,interrupt) BUT Loads(A6,D0,A1) BUT ASM ' jsr -174(a6)'
  29. #macro Cause(interrupt) IS (A1:=interrupt) BUT (A6:=execbase) BUT ASM ' jsr -180(a6)'
  30. -> ------ memory allocation --------------------------------------------
  31. #macro Allocate(freeList,byteSize) IS Stores(execbase,freeList,byteSize) BUT Loads(A6,A0,D0) BUT ASM ' jsr -186(a6)'
  32. #macro Deallocate(freeList,memoryBlock,byteSize) IS Stores(execbase,freeList,memoryBlock,byteSize) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -192(a6)'
  33. #macro AllocMem(byteSize,requirements) IS Stores(execbase,byteSize,requirements) BUT Loads(A6,D0,D1) BUT ASM ' jsr -198(a6)'
  34. #macro AllocAbs(byteSize,location) IS Stores(execbase,byteSize,location) BUT Loads(A6,D0,A1) BUT ASM ' jsr -204(a6)'
  35. #macro FreeMem(memoryBlock,byteSize) IS Stores(execbase,memoryBlock,byteSize) BUT Loads(A6,A1,D0) BUT ASM ' jsr -210(a6)'
  36. #macro AvailMem(requirements) IS (D1:=requirements) BUT (A6:=execbase) BUT ASM ' jsr -216(a6)'
  37. #macro AllocEntry(entry) IS (A0:=entry) BUT (A6:=execbase) BUT ASM ' jsr -222(a6)'
  38. #macro FreeEntry(entry) IS (A0:=entry) BUT (A6:=execbase) BUT ASM ' jsr -228(a6)'
  39. -> ------ lists --------------------------------------------------------
  40. #macro Insert(list,node,pred) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,list,node,pred) BUT Loads(A6,A0,A1,A2) BUT ASM ' jsr -234(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  41. #macro AddHead(list,node) IS Stores(execbase,list,node) BUT Loads(A6,A0,A1) BUT ASM ' jsr -240(a6)'
  42. #macro AddTail(list,node) IS Stores(execbase,list,node) BUT Loads(A6,A0,A1) BUT ASM ' jsr -246(a6)'
  43. #macro Remove(node) IS (A1:=node) BUT (A6:=execbase) BUT ASM ' jsr -252(a6)'
  44. #macro RemHead(list) IS (A0:=list) BUT (A6:=execbase) BUT ASM ' jsr -258(a6)'
  45. #macro RemTail(list) IS (A0:=list) BUT (A6:=execbase) BUT ASM ' jsr -264(a6)'
  46. #macro Enqueue(list,node) IS Stores(execbase,list,node) BUT Loads(A6,A0,A1) BUT ASM ' jsr -270(a6)'
  47. #macro FindName(list,name) IS Stores(execbase,list,name) BUT Loads(A6,A0,A1) BUT ASM ' jsr -276(a6)'
  48. -> ------ tasks --------------------------------------------------------
  49. #macro AddTask(task,initPC,finalPC) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,task,initPC,finalPC) BUT Loads(A6,A1,A2,A3) BUT ASM ' jsr -282(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  50. #macro RemTask(task) IS (A1:=task) BUT (A6:=execbase) BUT ASM ' jsr -288(a6)'
  51. #macro FindTask(name) IS (A1:=name) BUT (A6:=execbase) BUT ASM ' jsr -294(a6)'
  52. #macro SetTaskPri(task,priority) IS Stores(execbase,task,priority) BUT Loads(A6,A1,D0) BUT ASM ' jsr -300(a6)'
  53. #macro SetSignal(newSignals,signalSet) IS Stores(execbase,newSignals,signalSet) BUT Loads(A6,D0,D1) BUT ASM ' jsr -306(a6)'
  54. #macro SetExcept(newSignals,signalSet) IS Stores(execbase,newSignals,signalSet) BUT Loads(A6,D0,D1) BUT ASM ' jsr -312(a6)'
  55. #macro Wait(signalSet) IS (D0:=signalSet) BUT (A6:=execbase) BUT ASM ' jsr -318(a6)'
  56. #macro Signal(task,signalSet) IS Stores(execbase,task,signalSet) BUT Loads(A6,A1,D0) BUT ASM ' jsr -324(a6)'
  57. #macro AllocSignal(signalNum) IS (D0:=signalNum) BUT (A6:=execbase) BUT ASM ' jsr -330(a6)'
  58. #macro FreeSignal(signalNum) IS (D0:=signalNum) BUT (A6:=execbase) BUT ASM ' jsr -336(a6)'
  59. #macro AllocTrap(trapNum) IS (D0:=trapNum) BUT (A6:=execbase) BUT ASM ' jsr -342(a6)'
  60. #macro FreeTrap(trapNum) IS (D0:=trapNum) BUT (A6:=execbase) BUT ASM ' jsr -348(a6)'
  61. -> ------ messages -----------------------------------------------------
  62. #macro AddPort(port) IS (A1:=port) BUT (A6:=execbase) BUT ASM ' jsr -354(a6)'
  63. #macro RemPort(port) IS (A1:=port) BUT (A6:=execbase) BUT ASM ' jsr -360(a6)'
  64. #macro PutMsg(port,message) IS Stores(execbase,port,message) BUT Loads(A6,A0,A1) BUT ASM ' jsr -366(a6)'
  65. #macro GetMsg(port) IS (A0:=port) BUT (A6:=execbase) BUT ASM ' jsr -372(a6)'
  66. #macro ReplyMsg(message) IS (A1:=message) BUT (A6:=execbase) BUT ASM ' jsr -378(a6)'
  67. #macro WaitPort(port) IS (A0:=port) BUT (A6:=execbase) BUT ASM ' jsr -384(a6)'
  68. #macro FindPort(name) IS (A1:=name) BUT (A6:=execbase) BUT ASM ' jsr -390(a6)'
  69. -> ------ libraries ----------------------------------------------------
  70. #macro AddLibrary(library) IS (A1:=library) BUT (A6:=execbase) BUT ASM ' jsr -396(a6)'
  71. #macro RemLibrary(library) IS (A1:=library) BUT (A6:=execbase) BUT ASM ' jsr -402(a6)'
  72. #macro OldOpenLibrary(libName) IS (A1:=libName) BUT (A6:=execbase) BUT ASM ' jsr -408(a6)'
  73. #macro CloseLibrary(library) IS (A1:=library) BUT (A6:=execbase) BUT ASM ' jsr -414(a6)'
  74. #macro SetFunction(library,funcOffset,newFunction) IS Stores(execbase,library,funcOffset,newFunction) BUT Loads(A6,A1,A0,D0) BUT ASM ' jsr -420(a6)'
  75. #macro SumLibrary(library) IS (A1:=library) BUT (A6:=execbase) BUT ASM ' jsr -426(a6)'
  76. -> ------ devices ------------------------------------------------------
  77. #macro AddDevice(device) IS (A1:=device) BUT (A6:=execbase) BUT ASM ' jsr -432(a6)'
  78. #macro RemDevice(device) IS (A1:=device) BUT (A6:=execbase) BUT ASM ' jsr -438(a6)'
  79. #macro OpenDevice(devName,unit,ioRequest,flags) IS Stores(execbase,devName,unit,ioRequest,flags) BUT Loads(A6,A0,D0,A1,D1) BUT ASM ' jsr -444(a6)'
  80. #macro CloseDevice(ioRequest) IS (A1:=ioRequest) BUT (A6:=execbase) BUT ASM ' jsr -450(a6)'
  81. #macro DoIO(ioRequest) IS (A1:=ioRequest) BUT (A6:=execbase) BUT ASM ' jsr -456(a6)'
  82. #macro SendIO(ioRequest) IS (A1:=ioRequest) BUT (A6:=execbase) BUT ASM ' jsr -462(a6)'
  83. #macro CheckIO(ioRequest) IS (A1:=ioRequest) BUT (A6:=execbase) BUT ASM ' jsr -468(a6)'
  84. #macro WaitIO(ioRequest) IS (A1:=ioRequest) BUT (A6:=execbase) BUT ASM ' jsr -474(a6)'
  85. #macro AbortIO(ioRequest) IS (A1:=ioRequest) BUT (A6:=execbase) BUT ASM ' jsr -480(a6)'
  86. -> ------ resources ----------------------------------------------------
  87. #macro AddResource(resource) IS (A1:=resource) BUT (A6:=execbase) BUT ASM ' jsr -486(a6)'
  88. #macro RemResource(resource) IS (A1:=resource) BUT (A6:=execbase) BUT ASM ' jsr -492(a6)'
  89. #macro OpenResource(resName) IS (A1:=resName) BUT (A6:=execbase) BUT ASM ' jsr -498(a6)'
  90. -> ------ private diagnostic support -----------------------------------
  91. -> ------ misc ---------------------------------------------------------
  92. #macro RawDoFmt(formatString,dataStream,putChProc,putChData) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,formatString,dataStream,putChProc,putChData) BUT Loads(A6,A0,A1,A2,A3) BUT ASM ' jsr -522(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  93. #macro GetCC() IS (A6:=execbase) BUT ASM ' jsr -528(a6)'
  94. #macro TypeOfMem(address) IS (A1:=address) BUT (A6:=execbase) BUT ASM ' jsr -534(a6)'
  95. #macro Procure(sigSem,bidMsg) IS Stores(execbase,sigSem,bidMsg) BUT Loads(A6,A0,A1) BUT ASM ' jsr -540(a6)'
  96. #macro Vacate(sigSem,bidMsg) IS Stores(execbase,sigSem,bidMsg) BUT Loads(A6,A0,A1) BUT ASM ' jsr -546(a6)'
  97. #macro OpenLibrary(libName,version) IS Stores(execbase,libName,version) BUT Loads(A6,A1,D0) BUT ASM ' jsr -552(a6)'
  98. -> --- functions in V33 or higher (Release 1.2) ---
  99. -> ------ signal semaphores (note funny registers)----------------------
  100. #macro InitSemaphore(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -558(a6)'
  101. #macro ObtainSemaphore(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -564(a6)'
  102. #macro ReleaseSemaphore(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -570(a6)'
  103. #macro AttemptSemaphore(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -576(a6)'
  104. #macro ObtainSemaphoreList(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -582(a6)'
  105. #macro ReleaseSemaphoreList(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -588(a6)'
  106. #macro FindSemaphore(sigSem) IS (A1:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -594(a6)'
  107. #macro AddSemaphore(sigSem) IS (A1:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -600(a6)'
  108. #macro RemSemaphore(sigSem) IS (A1:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -606(a6)'
  109. -> ------ kickmem support ----------------------------------------------
  110. #macro SumKickData() IS (A6:=execbase) BUT ASM ' jsr -612(a6)'
  111. -> ------ more memory support ------------------------------------------
  112. #macro AddMemList(size,attributes,pri,base,name) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,size,attributes,pri,base,name) BUT Loads(A6,D0,D1,D2,A0,A1) BUT ASM ' jsr -618(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  113. #macro CopyMem(source,dest,size) IS Stores(execbase,source,dest,size) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -624(a6)'
  114. #macro CopyMemQuick(source,dest,size) IS Stores(execbase,source,dest,size) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -630(a6)'
  115. -> ------ cache --------------------------------------------------------
  116. -> --- functions in V36 or higher (Release 2.0) ---
  117. #macro CacheClearU() IS (A6:=execbase) BUT ASM ' jsr -636(a6)'
  118. #macro CacheClearE(address,length,caches) IS Stores(execbase,address,length,caches) BUT Loads(A6,A0,D0,D1) BUT ASM ' jsr -642(a6)'
  119. #macro CacheControl(cacheBits,cacheMask) IS Stores(execbase,cacheBits,cacheMask) BUT Loads(A6,D0,D1) BUT ASM ' jsr -648(a6)'
  120. -> ------ misc ---------------------------------------------------------
  121. #macro CreateIORequest(port,size) IS Stores(execbase,port,size) BUT Loads(A6,A0,D0) BUT ASM ' jsr -654(a6)'
  122. #macro DeleteIORequest(iorequest) IS (A0:=iorequest) BUT (A6:=execbase) BUT ASM ' jsr -660(a6)'
  123. #macro CreateMsgPort() IS (A6:=execbase) BUT ASM ' jsr -666(a6)'
  124. #macro DeleteMsgPort(port) IS (A0:=port) BUT (A6:=execbase) BUT ASM ' jsr -672(a6)'
  125. #macro ObtainSemaphoreShared(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -678(a6)'
  126. -> ------ even more memory support -------------------------------------
  127. #macro AllocVec(byteSize,requirements) IS Stores(execbase,byteSize,requirements) BUT Loads(A6,D0,D1) BUT ASM ' jsr -684(a6)'
  128. #macro FreeVec(memoryBlock) IS (A1:=memoryBlock) BUT (A6:=execbase) BUT ASM ' jsr -690(a6)'
  129. -> ------ V39 Pool LVOs...
  130. #macro CreatePool(requirements,puddleSize,threshSize) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,requirements,puddleSize,threshSize) BUT Loads(A6,D0,D1,D2) BUT ASM ' jsr -696(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
  131. #macro DeletePool(poolHeader) IS (A0:=poolHeader) BUT (A6:=execbase) BUT ASM ' jsr -702(a6)'
  132. #macro AllocPooled(poolHeader,memSize) IS Stores(execbase,poolHeader,memSize) BUT Loads(A6,A0,D0) BUT ASM ' jsr -708(a6)'
  133. #macro FreePooled(poolHeader,memory,memSize) IS Stores(execbase,poolHeader,memory,memSize) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -714(a6)'
  134. -> ------ misc ---------------------------------------------------------
  135. #macro AttemptSemaphoreShared(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -720(a6)'
  136. #macro ColdReboot() IS (A6:=execbase) BUT ASM ' jsr -726(a6)'
  137. #macro StackSwap(newStack) IS (A0:=newStack) BUT (A6:=execbase) BUT ASM ' jsr -732(a6)'
  138. -> ------ task trees ---------------------------------------------------
  139. #macro ChildFree(tid) IS (D0:=tid) BUT (A6:=execbase) BUT ASM ' jsr -738(a6)'
  140. #macro ChildOrphan(tid) IS (D0:=tid) BUT (A6:=execbase) BUT ASM ' jsr -744(a6)'
  141. #macro ChildStatus(tid) IS (D0:=tid) BUT (A6:=execbase) BUT ASM ' jsr -750(a6)'
  142. #macro ChildWait(tid) IS (D0:=tid) BUT (A6:=execbase) BUT ASM ' jsr -756(a6)'
  143. -> ------ future expansion ---------------------------------------------
  144. #macro CachePreDMA(address,length,flags) IS Stores(execbase,address,length,flags) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -762(a6)'
  145. #macro CachePostDMA(address,length,flags) IS Stores(execbase,address,length,flags) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -768(a6)'
  146. -> ------ New, for V39
  147. -> --- functions in V39 or higher (Release 3) ---
  148. -> ------ Low memory handler functions
  149. #macro AddMemHandler(memhand) IS (A1:=memhand) BUT (A6:=execbase) BUT ASM ' jsr -774(a6)'
  150. #macro RemMemHandler(memhand) IS (A1:=memhand) BUT (A6:=execbase) BUT ASM ' jsr -780(a6)'
  151. -> ------ Function to attempt to obtain a Quick Interrupt Vector...
  152. #macro ObtainQuickVector(interruptCode) IS (A0:=interruptCode) BUT (A6:=execbase) BUT ASM ' jsr -786(a6)'
  153.